package 面试经典150题.动态规划;

import java.util.Arrays;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;

/**
 * @author tmh
 * @date 2024/7/6 19:37
 * @description
 */
public class T300最长递增子序列 {
    public int lengthOfLIS(int[] nums) {
        //判断nums长度是否为0
        if (nums.length == 0) {
            return 0;
        }
        int[] dp = new int[nums.length];
        //dp数组每个元素初始化为1
        Arrays.fill(dp, 1);
        //result来保存最长子序列的值
        int result = 0;
        //双循环查找最长子序列
        for (int i = 0; i < nums.length; i++) {
            for (int j = 0; j < i; j++) {
                if (nums[i] > nums[j]) {
                    dp[i] = Math.max(dp[i], dp[j]+1);
                }
            }
            result = Math.max(result, dp[i]);
        }
        return result;
    }
}
